IF exists(SELECT * FROM dbo.sysobjects WHERE name='aa_individueel' AND xtype='FN') 
BEGIN
	DROP FUNCTION aa_individueel
END
GO

CREATE    function aa_individueel(@schooljaar char(4))
returns @individuele table
	  (inschrijvingsNr char(7),
           achternaam varchar(50),voornaam varchar(50),
	   klas varchar(5),studieSucces char,adviesOpvolging char)
as
begin
declare @vorigJaar varchar(4)
set @vorigJaar = convert(varchar(4),convert(int,@schooljaar) - 1)

insert into @individuele(inschrijvingsNr, achternaam,
		voornaam, klas, studieSucces, adviesOpvolging)
select distinct l.inschrijvingsNr,l.achternaam,l.voornaam,l.klas,
  case when
    ((isNull(mv.vak1,'')  = '') or (c1.cijfer >= 60)) and 
    ((isNull(mv.vak2,'')  = '') or (c2.cijfer >= 60)) and 
    ((isNull(mv.vak3,'')  = '') or (c3.cijfer >= 60)) and
    ((isNull(mv.vak4,'')  = '') or (c4.cijfer >= 60)) and
    (ct.cijfer >= 60)  then 's'
  when
    ((isNull(mv.vak1,'')  = '') or (c1.cijfer >= 50)) and
    ((isNull(mv.vak2,'')  = '') or (c2.cijfer >= 50)) and
    ((isNull(mv.vak3,'')  = '') or (c3.cijfer >= 50)) and
    ((isNull(mv.vak4,'')  = '') or (c4.cijfer >= 50)) and
    (ct.cijfer >=50)  then 'm'
  when
    ((isNull(mv.vak1,'') <> '') and (c1.cijfer < 50)) or
    ((isNull(mv.vak2,'') <> '') and (c2.cijfer < 50)) or
    ((isNull(mv.vak3,'') <> '') and (c3.cijfer < 50)) or
    ((isNull(mv.vak4,'') <> '') and (c4.cijfer < 50)) or
    (ct.cijfer < 50)  then 'p'
  else 'o' end as studieSucces,
  isNull(aa.status,'m') as adviesOpvolging

from (select distinct lbaan.inschrijvingsNr, lbaan.klas, 
			agl.achternaam, agl.voornaam
      from studiegegevens..loopbaan as lbaan
		left join alleGestarteLln as agl
		on lbaan.inschrijvingsNr = agl.inschrijvingsNr
      where jaar = @schooljaar) as l
  left join aa_majorvakken as mv
	on mv.klas = l.klas
  left join aa_cijfermateriaal as c1
  	on l.inschrijvingsNr = c1.inschrijvingsNr
	and isnull(c1.vak,'') = isnull(mv.vak1,'')
  left join aa_cijfermateriaal as c2
  	on l.inschrijvingsNr = c2.inschrijvingsNr
	and isnull(c2.vak,'') = isnull(mv.vak2,'')
  left join aa_cijfermateriaal as c3
  	on l.inschrijvingsNr = c3.inschrijvingsNr
	and isnull(c3.vak,'') = isnull(mv.vak3,'')
  left join aa_cijfermateriaal as c4
  	on l.inschrijvingsNr = c4.inschrijvingsNr
	and isnull(c4.vak,'') = isnull(mv.vak4,'')
  left join aa_cijfermateriaal as ct
  	on l.inschrijvingsNr = ct.inschrijvingsNr
	and ct.vak='AT'
  left join (select * from beslis where jaar = @vorigjaar) as b
	  on l.inschrijvingsNr = b.inschrijvingsNr 
  left join aa_adviesOpvolging as aa
	  on l.klas = aa.klas 
	  and aa.code = b.adviescode

return
end